package com.jhh.pay.center.service.cloud;

import com.jhh.pay.center.model.OrderType;
import com.jhh.pay.center.model.PayChannel;
import com.jhh.pay.center.service.cloud.message.*;

import java.util.Map;

/**
 * @author tangxd
 * @Description: TODO
 * @date 2017/12/6
 */
public interface PayChannelTemplate {
    TradeResult pay(PayChannel channel, TradePayBody body);

    TradeResult deduct(PayChannel channel, TradeDeductBody body);

    TradeResult state(PayChannel channel, TradeStateBody body, OrderType type);

    TradeResult callbackResolve(PayChannel channel, NotifyResolveBody body);

    Map<String, Object> cfg(PayChannel channel, String version);
}
